1. Field of the Invention
This invention relates to a method of management of buffer memory which stores packets in a network simulation device which simulates a device for performing packet exchange such as a router, and a buffer memory management system in a network simulation device using this method.
2. Description of the Related Art
In recent years the amount of traffic of data such as voice and images, which emphasize realtime response, on IP (Internet Protocol) networks has been increasing; and packet states such as packet delays and losses in routers, switches and other devices performing packet exchange in networks have greatly impacted the quality of communication and voice transmission experienced by end users.
Hence there has been a need to perform simulations of network quality, using settings to simulate the creation of various packet states in networks.
Buffer memory (hereafter called “packet buffers” for convenience) which stores packets is used in routers, switches and other devices performing packet exchange in networks. These packet buffers are used to temporarily store received packets, and to send the packets according to prescribed rules.
Hence devices used in the above simulations of network quality must also comprise packet buffers, in order to temporarily store packets and control packet transfer according to preset processing. Through the management of such packet buffers, various packet processing can be simulated.
In conventional packet buffer management, packets are stored in a packet buffer in which fixed areas are allocated according to the results of identification of the header portion of packets received from the network, and transfer is performed according to preset packet characteristics. (See for example FIG. 14 in Japanese Patent Laid-open No. 2001-143702.)
FIG. 17 is a block diagram of the configuration of a device equivalent to a router, which constitutes a network, employing the packet buffer described in this patent application; the operation of this device is explained below.
In the multiplexing portion 1 in the drawing, Ethernet signals of a plurality of n ports are multiplexed. The packet type identification control portion 2 compares the IP address or other identification information in the header portion of a packet multiplexed by the multiplexing portion 1 with registered information, referring to associative memory (CAM: Content-Addressable Memory) 3. When comparison results in a match, tag information identifying the service class (CoS: Class of Service) as classified by the TCP/UDP port number or similar is read from the SRAM 4 and appended to the packet, which is output.
The buffer management control portion 5 manages the writing to and reading from the packet buffer memory 6 of packets to which tag information input from the packet type identification control portion 2 is appended. The packet pointer management memory 7 manages the address pointer specifying address positions at which packets are stored in the packet buffer memory 6.
The above buffer management control portion 5 has a service class (CoS) characteristic table 8; in this service class characteristic table 8 are stored, for identified packets, the packet delay, packet loss, packet order inversion, or error insertion or other characteristic content to control operation.
The buffer management control portion 5 further has a read/write control portion 9, which performs read/write control of the packet buffer memory 6; a pointer read/write control portion 10, which specifies the address in the packet buffer memory 6 during read and write operations by the packet read/write control portion 9, based on the storage address of a packet stored in the packet pointer management memory 7; and a packet output control portion 11, which controls packet output from the packet buffer memory 6 according to the CoS characteristic set in the service class characteristic table 8.
The demultiplexing portion 12 has a function to separate multiplexed packets into n ports.
FIG. 18 shows the configuration of the packet buffer memory 6 in FIG. 17. The CoS number [of services] (1) for the output destination physical port numbers 1 to n, and (2) for each physical port (in the example of the drawing, 8 types) are fixed values. Further, (3) the CoS number is specified for output destination physical ports, and the amount of memory allocated to each CoS area for all physical ports is uniform and fixed. And, (4) start addresses and end addresses for each CoS area are fixed.
Storage addresses for packets in the packet pointer management memory 7 are stored so as to result in the configuration of packet buffer memory 6 shown in FIG. 18. Hence the read/write control portion 9 reads and writes a packet identified by the packet type identification control portion 2 to and from an address position read from the packet pointer management memory 7 and specified by the pointer read/write control portion 10.
Thus as described above, in the conventional configuration shown in FIG. 17, storage areas in the packet buffer memory 6 are fixed as shown in FIG. 18.
Further, in the pointer read/write control portion 10 in the conventional configuration shown in FIG. 17, the amount of movement of the management pointer by the packet output control portion 11 according to the service class characteristic table is always fixed, so that no means is provided to enable various packet operations in a simulated network.
In conventional packet buffer management as shown in FIG. 17 and FIG. 18, memory areas allocated to each physical port or CoS area are fixed. Consequently when there is a small number of physical ports or CoS areas being used, there occur memory areas in the packet buffer memory 6 which are not used at all.
Also, when a delay is added to a transferred packet, the maximum delay time which can be set is determined by the fixed area size regardless of the number of physical ports or the number of CoS areas, and delay times cannot be set making maximum use of memory resources.
Further, in the conventional buffer management method the amount of movement of the management pointer-based on settings in the service class characteristic table 8 is fixed, so that it is not possible to perform processing necessary for substitution of the order of transfer of packets in the packet output control portion 11, for intentional loss of arbitrary packets, or to otherwise simulate network operation.